#ifndef __DICTPRODUCER_H__
#define __DICTPRODUCER_H__
#include "Configuration.h"
#include "SplitToolCppJieba.hpp"
#include <dirent.h>
#include <string>
#include <vector>
#include <regex>
#include <fstream>
#include <iostream>
#include <unordered_map>
using std::vector;
using std::string;
using std::unordered_map;
using std::ifstream;
using std::ofstream;

namespace SC
{

    class DictProducer
    {
    public:
        DictProducer(const string& , const string& , const string& ,const string& , SplitToolCppJieba* );
        unordered_map<string,int>& getDict();       
        void store_dict(const string& file);
        
    private:
        void init();
        void Convert(string& word);                     //大写转小写
        void build_English_dict(const string& dir);     //创建英文字典
        void build_Chinese_dict(const string& dir);     //创建中文字典
        void getfiles(const string& cdir);
        void remover();

    private:
        string _english_dir;                        //英文语料库文件存放的相对路径
        string _chinese_dir;                        //中文语料库文件存放的相对路径
        string _english_dict;                       
        string _chinese_dict;
        vector<string> _files;
        unordered_map<string, int> _dict;           //<单词，出现的次数>
        SplitToolCppJieba* _splitTool;                      
    };

}
#endif